Generally described, computing devices can request content from other computing devices via a communication network. For example, a user at a personal computing device can utilize a software browser application, typically referred to as a browser, to request a web page from a server computing device via the Internet. In such embodiments, the personal computing device can be referred to as a client computing device and the server computing device can be referred to as a content provider.
Illustratively, content requests may be transmitted in accordance with communication or networking protocols, such as the Hypertext Transfer Protocol (“HTTP”). More specifically, client computing devices can utilize HTTP-based connections between the client computing device and the content provider to transmit content requests. The establishment of network connections, such as HTTP connections, can involve a multi-step handshake procedure which may include several round-trip communications between the client computing device and a server associated with the content provider. Each round-trip communication between the client computing device and the server associated with the content provider consumes a number of resources required to complete the handshake, establish the connection, and complete content request. In some cases, each content request may result in the establishment of a new network connection between the client and the server.
In some instances, a communication network can include a number of network computing providers that may serve as intermediaries, or proxies, between client computing devices and content providers. In accordance with such embodiments, requests for content provided by content providers may be sent from client computing devices to the network computing provider instead of the content provider hosting the content. The network computing provider can fulfill the request for the client computing device, in some cases more efficiently or securely than direct connections from the client computing device to the content provider. For example, network computing providers can often be configured to provide multiple server computing devices in geographically distinct areas and to utilize caching techniques and other techniques to improve content delivery to the client computing devices. In addition, network computing providers may have access to additional or more reliable network resources, such as computing devices or network connections, than would otherwise be available to individual client computing devices or content providers.